10 HOME
20 PRINT CHR$(4);"PR#3"

36 INVERSE:VTAB 1:HTAB 20:PRINT"RULE PRINTER TOOL (40320 RULE-LINES TOTALLY)"
38 VTAB 23:HTAB 1:PRINT"                                                                               ":VTAB 23:HTAB 26:PRINT"PRESS ANY KEY TO BE CONTINUE":VTAB 23:HTAB 55:GET Z$:NORMAL

40 HOME

900 CU=0

1000 FOR RU=12345678 TO 87654321



1010 M(1)=INT(RU/10000000)
1020 M(2)=INT((RU-M(1)*10000000)/1000000)
1030 M(3)=INT((RU-M(1)*10000000-M(2)*1000000)/100000)
1040 M(4)=INT((RU-M(1)*10000000-M(2)*1000000-M(3)*100000)/10000)
1050 M(5)=INT((RU-M(1)*10000000-M(2)*1000000-M(3)*100000-M(4)*10000)/1000)
1060 M(6)=INT((RU-M(1)*10000000-M(2)*1000000-M(3)*100000-M(4)*10000-M(5)*1000)/100)
1070 M(7)=INT((RU-M(1)*10000000-M(2)*1000000-M(3)*100000-M(4)*10000-M(5)*1000-M(6)*100)/10)
1080 M(8)=INT((RU-M(1)*10000000-M(2)*1000000-M(3)*100000-M(4)*10000-M(5)*1000-M(6)*100-M(7)*10)/1)


1100 FOR I=1 TO 8
1110 IF M(I)=9 OR M(I)=0 THEN 1390
1120 NEXT I

1130 FOR I=1 TO 7
1131 FOR J=2 TO 8
1132 IF I=J THEN 1134
1133 IF M(I)=M(J) THEN 1390
1134 NEXT J
1136 NEXT I

1140 GOSUB 6100

1142 CU=CU+1


1154 PRINT T$;CU:T$=""

1390 NEXT RU

1400 CU=0

1410 END


6100 FOR I=1 TO 8
6102 IF M(I)=1 THEN P$(I)="R "
6104 NEXT I
6110 FOR I=1 TO 8
6112 IF M(I)=2 THEN P$(I)="DR "
6114 NEXT I
6120 FOR I=1 TO 8
6122 IF M(I)=3 THEN P$(I)="D "
6124 NEXT I
6130 FOR I=1 TO 8
6132 IF M(I)=4 THEN P$(I)="DL "
6134 NEXT I
6140 FOR I=1 TO 8
6142 IF M(I)=5 THEN P$(I)="L "
6144 NEXT I
6150 FOR I=1 TO 8
6152 IF M(I)=6 THEN P$(I)="UL "
6154 NEXT I
6160 FOR I=1 TO 8
6162 IF M(I)=7 THEN P$(I)="U "
6164 NEXT I
6170 FOR I=1 TO 8
6172 IF M(I)=8 THEN P$(I)="UR "
6174 NEXT I

6200 FOR I=1 TO 8
6202 T$=T$+P$(I)+" "
6206 NEXT I
6208 T$=T$+"  ;  "

6300 RETURN





